package com.example.shixun2;

import android.app.Dialog;
import android.content.pm.PackageManager;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.DialogFragment;
import com.google.android.material.button.MaterialButton;
import com.google.android.material.textfield.TextInputEditText;
import android.content.Context;
import androidx.core.app.NotificationCompat;
import androidx.core.app.NotificationManagerCompat;
import android.Manifest;
import android.os.Build;
import androidx.core.content.ContextCompat;


public class HelpFeedbackFragment extends DialogFragment {

    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        // 1. 加载你的自定义布局
        return inflater.inflate(R.layout.dialog_help_feedbac, container, false);
    }

    @Override
    public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
        super.onViewCreated(view, savedInstanceState);

        // 2. 找到布局 中的控件
        TextInputEditText etFeedback = view.findViewById(R.id.et_feedback);
        MaterialButton btnCancel = view.findViewById(R.id.btn_dialog_cancel);
        MaterialButton btnSubmit = view.findViewById(R.id.btn_dialog_submit);

        // 3. 设置“取消”按钮的点击事件
        btnCancel.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                dismiss(); // 关闭对话框
            }
        });

        // 4. 设置“提交”按钮的点击事件
        btnSubmit.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                String feedbackText = etFeedback.getText().toString();

                if (feedbackText.isEmpty()) {
                    Toast.makeText(getContext(), "反馈内容不能为空", Toast.LENGTH_SHORT).show();
                } else {
                    showNotification(getContext());
                    dismiss(); // 提交后关闭对话框
                }
            }
        });
    }
    // 设置对话框的背景为透明
    @Override
    public void onStart() {
        super.onStart();
        Dialog dialog = getDialog();
        if (dialog != null) {
            // 设置背景为透明
            dialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
        }
    }

    //显示系统栏通知内容
    public void showNotification(Context context) {
        if(context == null) {
            return;
        }

        //构建通知内容
        // 1. 构建通知内容
        NotificationCompat.Builder builder = new NotificationCompat.Builder(context, MyApplication.FEEDBACK_CHANNEL_ID)
                .setSmallIcon(R.drawable.ic_help)   //设置图表
                .setContentTitle("反馈已提交") // 通知标题
                .setContentText("感谢您的宝贵意见，我们已收到！") // 通知内容
                .setPriority(NotificationCompat.PRIORITY_DEFAULT) // 优先级
                .setAutoCancel(true);
        //获取通知管理器
        NotificationManagerCompat notificationManager = NotificationManagerCompat.from(context);
        //权限检查
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
            // 检查我们是否“已经”获得了 POST_NOTIFICATIONS 权限
            if (ContextCompat.checkSelfPermission(context, Manifest.permission.POST_NOTIFICATIONS) == PackageManager.PERMISSION_GRANTED) {
                // 权限已授予：可以安全地显示通知
                notificationManager.notify(101, builder.build());

            } else {
                Toast.makeText(context, "请在设置中开启应用的通知权限", Toast.LENGTH_SHORT).show();
            }
        }else {
            // 如果是 Android 12 或更低版本，我们不需要权限，可以直接显示
            notificationManager.notify(101, builder.build());
        }
    }
}